package pers.ijfxu.testngext.listener;

import io.ous.jtoml.JToml;
import io.ous.jtoml.Toml;
import org.testng.ISuite;
import org.testng.ISuiteListener;
import pers.ijfxu.testngext.context.RunContext;
import pers.ijfxu.testngext.utils.BeetlUtils;
import pers.ijfxu.testngext.utils.PathUtils;

import java.io.File;
import java.io.IOException;

/**
 * 渲染文件
 * 主要针对配置文件
 *
 * @author ijfxu
 * @since 2022/10/22 上午12:25
 */
public class FileRenderListener implements ISuiteListener {
    @Override
    public void onStart(ISuite iSuite) {
        File file = new File(PathUtils.getResource(RunContext.renderDir));
        /** 未发现文件夹则不进行渲染*/
        if (!file.exists()) {
            return;
        }

        /** 加载toml文件*/
        String configFile = PathUtils.getResource(RunContext.configFile);
        try {
            Toml toml = JToml.parse(new File(configFile));
            RunContext.confTom = toml.getTomlTable(RunContext.runEnv);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        BeetlUtils.render(RunContext.renderDir, RunContext.confTom);  // 渲染所有文件
    }

    @Override
    public void onFinish(ISuite iSuite) {

    }
}
